package com.tucy.logistics.common.entity.user;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tucy.logistics.common.base.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import org.hibernate.validator.constraints.Length;

/**
* 用户表
* @TableName system_user
*/
@Setter
@Getter
public class SystemUser extends BaseEntity implements Serializable {

    /**
    * 用户id
    */
    @NotNull(message="[用户id]不能为空")
    @ApiModelProperty("用户id")
    private Long id;
    /**
    * 用户账号
    */
    @NotBlank(message="[用户账号]不能为空")
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("用户账号")
    @Length(max= 40,message="编码长度不能超过40")
    private String username;
    /**
    * 用户密码
    */
    @NotBlank(message="[用户密码]不能为空")
    @Size(max= 255,message="编码长度不能超过255")
    @ApiModelProperty("用户密码")
    @Length(max= 255,message="编码长度不能超过255")
    private String password;
    /**
    * 用户昵称
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("用户昵称")
    @Length(max= 40,message="编码长度不能超过40")
    private String nickname;
    /**
    * 微信、QQ的openId
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("微信、QQ的openId")
    @Length(max= 40,message="编码长度不能超过40")
    private String openId;
    /**
    * 手机
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("手机")
    @Length(max= 40,message="编码长度不能超过40")
    private String mobile;
    /**
    * 邮箱
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("邮箱")
    @Length(max= 40,message="编码长度不能超过40")
    private String email;
    /**
    * 头像图标
    */
    @Size(max= 400,message="编码长度不能超过400")
    @ApiModelProperty("头像图标")
    @Length(max= 400,message="编码长度不能超过400")
    private String iconUrl;
    /**
    * 个性签名
    */
    @Size(max= 400,message="编码长度不能超过400")
    @ApiModelProperty("个性签名")
    @Length(max= 400,message="编码长度不能超过400")
    private String selfSign;
    /**
    * 性别(0-女，1-男）
    */
    @ApiModelProperty("性别(0-女，1-男）")
    private Integer gender;
    /**
    * 生日
    */
    @ApiModelProperty("生日")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date birthday;
    /**
    * 城市
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("城市")
    @Length(max= 40,message="编码长度不能超过40")
    private String city;
    /**
    * 职业
    */
    @Size(max= 40,message="编码长度不能超过40")
    @ApiModelProperty("职业")
    @Length(max= 40,message="编码长度不能超过40")
    private String job;
    /**
     * 角色id
     */
    @ApiModelProperty("角色id")
    private Long roleId;
    /**
     * 组织id
     */
    @ApiModelProperty("组织id")
    private Long organizationId;
}
